Feedback plays an important role in software development, maintenance, and improvement. This is especially true for graphical user interfaces (GUI), which provide the necessary connections between users and software functions. Essentially, this feedback may come during any time in the lifecycle of an application, web site, driver, or device interface, such as during a learning experience, debugging, user acceptance testing, or after the product has been launched.
Developers may benefit from feedback in many ways, including receiving input about issues or beneficial enhancements that they may not have determined on their own. In addition, application testers and users may put the application through many more situations and can provide feedback as to how the software performed during such real-world conditions. However, the value of feedback is often restricted because of the timing involved, especially considering the pace of software development and the longevity of such products in the marketplace. In addition, users typically only have a few seconds to spare for feedback and there are many inherent difficulties when interpreting the actual feedback text into a useful form for developers.